package com.amoyt.project.service.admin;

import com.amoyt.project.domain.dto.AdminLoginDto;
import com.amoyt.project.domain.dto.insert.AdminAddDto;
import com.amoyt.project.domain.dto.query.AdminPageQuery;
import com.amoyt.project.domain.dto.update.AdminUpdateDto;
import com.amoyt.project.domain.res.Result;

import java.util.List;

/**
 * @Date: 2025/8/10
 * @Time: 20:38
 * @Author: TQ_QT
 * @Description: 管理员服务接口类
 */
public interface AdminService {
    /**
     * 管理员登录
     * @param adminLoginDto 管理员登录Dto
     * @return
     */
    Result login(AdminLoginDto adminLoginDto);

    /**
     * 管理员登出
     * @return
     */
    Result logout();

    /**
     * 获取管理员信息
     * @return
     */
    Result getAdminInfo();

    /**
     * 分页查询 获取管理员列表
     * @return
     */
    Result listAdmins(AdminPageQuery adminPageQuery);

    /**
     * 重置密码
     * @param userId
     * @return
     */
    Result resetPassword(String userId);

    /**
     * 删除管理员
     * @param userId
     * @return
     */
    Result delete(List<String> userId);

    /**
     * 更新管理员信息
     * @param adminUpdateDto
     * @return
     */
    Result update(AdminUpdateDto adminUpdateDto);

    /**
     * 更新管理员个人信息
     * @param adminUpdateDto
     * @return
     */
    Result updateOwn(AdminUpdateDto adminUpdateDto);

    /**
     * 新增管理员
     * @param adminAddDto
     * @return
     */
    Result add(AdminAddDto adminAddDto);

    /**
     * 获取下级权限
     * @return
     */
    Result getLowerPermission();


}
